package cn.sangedon.review.analysis.service;

import cn.sangedon.review.analysis.domain.StasticsQuery;
import cn.sangedon.review.common.domain.analysis.StockStastics;
import cn.sangedon.review.common.domain.analysis.StockStrategyResult;
import cn.sangedon.review.common.domain.analysis.TrendStastics;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

/**
 * @author dongliangqiong
 * @description 针对表【tb_stock_stastics(股票统计信息表)】的数据库操作Service
 * @createDate 2022-09-22 14:03:25
 */
public interface StockStasticsService extends IService<StockStastics> {

    /**
     * 获取数据分析统计的交易日日期
     *
     * @return
     */
    String getStasticsDate();

    /**
     * 获取统计分析数据列表
     *
     * @param stasticsQuery 查询条件
     * @return
     */
    List<StockStastics> listOrderByType(StasticsQuery stasticsQuery);

    /**
     * 获取股票趋势
     *
     * @param cycleDays
     * @return
     */
    List<TrendStastics> trend(Integer cycleDays);

    /**
     * 实时缩量红股票推荐
     *
     * @return
     */
    List<StockStrategyResult> suggestFallShrinkRedIntime();

    /**
     * 获取统计的连续缩量涨股票
     *
     * @return
     */
    List<StockStastics> continuousShrinkRise();

    /**
     * 获取最近的统计分析数据
     *
     * @return
     */
    List<StockStastics> listLatest();

    /**
     * 获取连续上涨及放量两天及以上的股票
     *
     * @return
     */
    List<StockStastics> continuousHignVolumeRise();

    /**
     * 获取连续下跌缩量红股票
     *
     * @param preTradeDate 上一个交易日日期
     * @param tradeDate 当前交易日日期
     * @return
     */
    List<StockStrategyResult> fallShrinkRed(String preTradeDate, String tradeDate);
}
